/* ******************************* *
 *       -=# Array Life #=-        *
 *             =====               *
 *         By: TarpeyD12           *
 * =============================== *
 *        Version: 0.3.5.9         *
 * ******************************* *
 *          Colors file.           *
 *        alfunc_colors.c          *
 * ******************************* */

#include "array_life.h"

void textcolor(int attr, int fg, int bg);
void putcharclr(int attr, int fg, int bg, char ch);
void putstrclr(int attr, int fg, int bg, char *str);

void textcolor(int attr, int fg, int bg){
	initscr();
	if(has_colors()==TRUE && COLORIF==0){
	
		/*    pair#  foreground   background */
		init_pair(0, COLOR_BLACK, COLOR_BLACK);
		init_pair(10, COLOR_RED, COLOR_BLACK);
		init_pair(20, COLOR_GREEN, COLOR_BLACK);
		init_pair(30, COLOR_YELLOW, COLOR_BLACK);
		init_pair(40, COLOR_BLUE, COLOR_BLACK);
		init_pair(50, COLOR_MAGENTA, COLOR_BLACK);
		init_pair(60, COLOR_CYAN, COLOR_BLACK);
		init_pair(70, COLOR_WHITE, COLOR_BLACK);
		
		init_pair(01, COLOR_BLACK, COLOR_RED);
		init_pair(11, COLOR_RED, COLOR_RED);
		init_pair(21, COLOR_GREEN, COLOR_RED);
		init_pair(31, COLOR_YELLOW, COLOR_RED);
		init_pair(41, COLOR_BLUE, COLOR_RED);
		init_pair(51, COLOR_MAGENTA, COLOR_RED);
		init_pair(61, COLOR_CYAN, COLOR_RED);
		init_pair(71, COLOR_WHITE, COLOR_RED);
		
		init_pair(02, COLOR_BLACK, COLOR_GREEN);
		init_pair(12, COLOR_RED, COLOR_GREEN);
		init_pair(22, COLOR_GREEN, COLOR_GREEN);
		init_pair(32, COLOR_YELLOW, COLOR_GREEN);
		init_pair(42, COLOR_BLUE, COLOR_GREEN);
		init_pair(52, COLOR_MAGENTA, COLOR_GREEN);
		init_pair(62, COLOR_CYAN, COLOR_GREEN);
		init_pair(72, COLOR_WHITE, COLOR_GREEN);
		
		init_pair(03, COLOR_BLACK, COLOR_YELLOW);
		init_pair(13, COLOR_RED, COLOR_YELLOW);
		init_pair(23, COLOR_GREEN, COLOR_YELLOW);
		init_pair(33, COLOR_YELLOW, COLOR_YELLOW);
		init_pair(43, COLOR_BLUE, COLOR_YELLOW);
		init_pair(53, COLOR_MAGENTA, COLOR_YELLOW);
		init_pair(63, COLOR_CYAN, COLOR_YELLOW);
		init_pair(73, COLOR_WHITE, COLOR_YELLOW);
		
		init_pair(04, COLOR_BLACK, COLOR_BLUE);
		init_pair(14, COLOR_RED, COLOR_BLUE);
		init_pair(24, COLOR_GREEN, COLOR_BLUE);
		init_pair(34, COLOR_YELLOW, COLOR_BLUE);
		init_pair(44, COLOR_BLUE, COLOR_BLUE);
		init_pair(54, COLOR_MAGENTA, COLOR_BLUE);
		init_pair(64, COLOR_CYAN, COLOR_BLUE);
		init_pair(74, COLOR_WHITE, COLOR_BLUE);
		
		init_pair(05, COLOR_BLACK, COLOR_MAGENTA);
		init_pair(15, COLOR_RED, COLOR_MAGENTA);
		init_pair(25, COLOR_GREEN, COLOR_MAGENTA);
		init_pair(35, COLOR_YELLOW, COLOR_MAGENTA);
		init_pair(45, COLOR_BLUE, COLOR_MAGENTA);
		init_pair(55, COLOR_MAGENTA, COLOR_MAGENTA);
		init_pair(65, COLOR_CYAN, COLOR_MAGENTA);
		init_pair(75, COLOR_WHITE, COLOR_MAGENTA);
		
		init_pair(06, COLOR_BLACK, COLOR_CYAN);
		init_pair(16, COLOR_RED, COLOR_CYAN);
		init_pair(26, COLOR_GREEN, COLOR_CYAN);
		init_pair(36, COLOR_YELLOW, COLOR_CYAN);
		init_pair(46, COLOR_BLUE, COLOR_CYAN);
		init_pair(56, COLOR_MAGENTA, COLOR_CYAN);
		init_pair(66, COLOR_CYAN, COLOR_CYAN);
		init_pair(76, COLOR_WHITE, COLOR_CYAN);
		
		init_pair(07, COLOR_BLACK, COLOR_WHITE);
		init_pair(17, COLOR_RED, COLOR_WHITE);
		init_pair(27, COLOR_GREEN, COLOR_WHITE);
		init_pair(37, COLOR_YELLOW, COLOR_WHITE);
		init_pair(47, COLOR_BLUE, COLOR_WHITE);
		init_pair(57, COLOR_MAGENTA, COLOR_WHITE);
		init_pair(67, COLOR_CYAN, COLOR_WHITE);
		init_pair(77, COLOR_WHITE, COLOR_WHITE);
		
		/*
		
		use this to call colorpairs:
		attron(COLOR_PAIR(1));
		
		*/
		
		switch(attr) {
			case 0:	attron(A_NORMAL); break;
			case 1:	attron(A_STANDOUT); break;
			case 2:	attron(A_UNDERLINE); break;
			case 3:	attron(A_REVERSE); break;
			case 4:	attron(A_BLINK); break;
			case 5:	attron(A_DIM); break;
			case 6:	attron(A_BOLD); break;
			case 7:	attron(A_PROTECT); break;
			case 8:	attron(A_INVIS); break;
			case 9:	attron(A_ALTCHARSET); break;
			case 10:attron(A_CHARTEXT); break;
		}
		attron(COLOR_PAIR(/**/((fg*10)+bg)/**/));
	}
};

void putcharclr(int attr, int fg, int bg, char ch) {
	textcolor(attr, fg, bg);
	printw("%c", ch);
};

void putstrclr(int attr, int fg, int bg, char *str) {
	textcolor(attr, fg, bg);
	printw("%s", str);
};
